package com.xinqi.modules.stats.score.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.mybatis.data.service.BaseService;
import com.xinqi.modules.stats.score.domain.CourseTotalScoreTypeEntity;
import com.xinqi.modules.stats.score.dto.req.*;
import com.xinqi.modules.stats.score.dto.rsp.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 总成绩各分类栏目等级制分值配置表服务层
 *
 * @author: system
 * @date: 2023/03/26
 */
public interface CourseTotalScoreTypeService extends BaseService<CourseTotalScoreTypeEntity> {

    /** 查询分类成绩的基础配置信息 */
    CourseTotalScoreTypeResultDTO findCourseTotalScoreType(CourseTotalScoreTypeQueryDTO dto);

    /** 编辑分类成绩的基础配置信息 */
    boolean setCourseTotalScoreType(CourseTotalScoreTypeCreateDTO dto);

    /** 总成绩学生列表查询 */
    TotalScoreStudentScoreDTO allStudentScore(CourseTotalScoreStudentQueryDTO dto);

    /** 老师 APP端各分类成绩查询 */
    List<TotalScoreStudentListDTO> teacherTypeScore(CourseTotalScoreTypeQueryDTO dto);

    /** 老师 APP端各分类成绩查询 分页*/
    PageInfo<TotalScoreStudentListDTO> teacherTypeScorePage(CourseTotalScoreTypeQueryDTO dto);

    /** 老师 PC端各分类成绩查询 */
    CourseContentTotalScorePCResultDTO pcTeacherTypeScore(CourseTotalScoreStudentQueryDTO dto);

    /** 老师端各分类成绩详情查询 */
    TeacherStudentTotalScoreResultDTO teacherTypeDetail(CourseTotalScoreTypeDetailQueryDTO dto);

    /** 学生端各分类成绩查询 */
    TotalScoreStudentTypeMsgDTO typeScore(CourseTotalScoreTypeQueryDTO dto);

    /** 学生端各分类成绩查询 */
    PageInfo<TotalScoreStudentListDTO> typeScorePage(CourseTotalScoreTypeQueryDTO dto);

    /** 分类成绩下载 */
    void downExcel(CourseTotalScoreStudentQueryDTO dto, HttpServletResponse response);


    //======================功能变更V2======================================
    /**
     * 老师 分类成绩查询 分页
     * @author dzy
     */
    PageInfo<TotalScoreStudentListDTO> teacherTypeScorePageV2(CourseTotalScoreTypeQueryDTO dto);

}
